package com.duobaoyu.dby.supply.common.biz.bo.refund;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;
import lombok.ToString;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * Created by shuming on 2023/10/7 14:30
 * 售后修改业务对象
 */
@Data
@ToString
public class AfterSaleModifyInBO implements Serializable {

    /**
     * 主键ID
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long id;


    /**
     * 描述：渠道编码
     */
    private String channelCode;
    /**
     * 描述：订单编码
     */
    private String orderSn;

    /**
     * 业务来源
     */
    private String showServerName;
    /**
     * 描述：售后状态
     */
    private Integer status;
    /**
     * 描述：售后渠道交易单号
     */
    private String afterSaleTradeOrderSn;

    /**
     * 描述：售后单号
     */
    private String afterSaleSn;
    /**
     * 描述：客户寄回地址
     */
    private CustomerReturnAddressBO customerReturnAddress;
    /**
     * 描述：渠道父编号
     */
    private String channelOrderParentSn;
    /**
     * 描述：申请退款金额
     */
    private BigDecimal applyRefundAmount;
    /**
     * 描述：渠道售后单号
     */
    private String channelAfterSaleSn;
    /**
     * 描述：版本号-用作乐观锁
     */
    private Integer version;
    /**
     * 描述：售后来源 0 用户申请 1 运营申请 2 系统自动生成
     */
    private Integer afterSaleSource;
    /**
     * 描述：运费申请退款金额
     */
    private BigDecimal freightApplyRefundAmount;
    /**
     * 描述：渠道运费退款金额
     */
    private BigDecimal channelFreightActualRefundAmount;
    /**
     * 描述：失败原因
     */
    private String failReason;

    /**
     * 取消原因
     */
    private String cancelReason;
    /**
     * 调用来源
     */
    private String serverName;
    /**
     * 描述：订单渠道交易单号-和订单统一
     */
    private String channelTradeOrderSn;

    /**
     * 供应链三方交易单号
     */
    private String orderTradeSn;
    /**
     * 描述：售后类型
     */
    private Integer afterSaleType;
    /**
     * 描述：申请退款金额
     */
    private BigDecimal channelActualRefundAmount;

    /**
     * 描述：是否有发票
     */
    private Boolean hasInvoice;
    /**
     * 描述：业务售后单号
     */
    private String bizAfterSaleSn;
    /**
     * 描述：渠道订单编号
     */
    private String channelOrderSn;

    /**
     * 退款状态
     */
    private Integer refundStatus;

    /**
     * 商户id
     */
    private String mchId;

    /**
     * 用户id
     */
    private String userId;

    /**
     * 联系人信息
     */
    private AfterSaleContactInfoBO contactInfo;

    /**
     * 售后申请明细
     */
    private List<AfterSaleItemInBO> afterSaleItems;

}
